最終確認日
Remote Procedure Calls
https://docs.godotengine.org/en/stable/tutorials/networking/high_level_multiplayer.html#remote-procedure-callsRPC(Remote Procedure Call)は、ネットワーク越しに関数を呼び出すための仕組み。 Godot では、プレイヤー間やホスト・クライアント間で関数の実行を同期するために使われる。
特徴
ネットワークゲームでは、あるプレイヤーの行動を他のプレイヤーやサーバーに伝える必要がある。RPC を使うことで、ローカルで関数を呼び出すような感覚で、リモート上の処理を実行できる。
基本構文(Godot)
- 関数に
@rpc
を付けることで、ネットワーク越しに呼び出し可能になる。 - 呼び出しは
.rpc()
または.rpc_id(id)
を使う。
@rpc
func show_effect():
print("Effect triggered")
func _ready():
show_effect.rpc() # 全プレイヤーに実行
モードの設定パラメータ
mode
- authority: オーソリティ(通常はサーバー)のみがこの関数を実行可能 (デフォルト)
- any_peer: 任意のピア(プレイヤー)がこの関数を実行可能
sync
- call_local: 呼び出した本人も含めて全員に実行(自分+他人)
- call_remote: 自分以外にだけ実行(自分には影響しない) (デフォルト)
transfer_mode
- unreliable: 到達保証なし、順序保証なし(最も高速)(デフォルト)
- unreliable_ordered: 到達保証なし、順序は保証(中程度)
- reliable: 到達保証あり、順序保証あり(最も信頼性が高いが重い)
モードの設定の参考例
用途 | mode | sync | transfer_mode |
---|---|---|---|
チャット送信 | any_peer | call_local | reliable |
プレイヤーのアニメーション | authority | call_remote | unreliable |
スキルの発動通知 | authority | call_local | reliable |
エフェクトの表示 | any_peer | call_local | unreliable |
モードのデフォルト値
rpc(mode: String = "authority", sync: String = "call_remote", transfer_mode: String = "unreliable", transfer_channel: int = 0)

公開日
更新日